1. Field of the Invention
The present invention relates in general to data processing systems and, in particular, to a data processing system having a virtual memory address space for generating virtual memory descriptors which are utilized to efficiently access a main memory. Still more particularly, the present invention relates to a method and system in a data processing system having a virtual memory address space for generating virtual memory descriptors including pretranslated physical addresses for accessing a main memory.
2. Description of the Related Art
Personal computer systems are well known in the art. They have attained widespread use for providing computer power to many segments of today's modern society. Personal computers may be defined as desktop systems, floor standing systems, or portable microcomputers. Examples of such personal computer systems are IBM's PC series, Aptiva series, and Thinkpad series.
Many computer systems include a virtual memory address space which permits an application or process to address a space which is larger than the main memory included within the system. In virtual memory systems, it is necessary to translate virtual addresses into physical addresses in order to execute commands. One common method for performing the translations is to perform a page table look-up.
The virtual address space is typically divided into equal sized pages. A page table is maintained which includes a physical address for the first byte of main memory for each page of the virtual address space. The page table is stored in main memory and is accessed each time a virtual address is included within a command. In this manner, each time a virtual address is encountered, the physical address must be determined.
The physical address is determined utilizing a page table typically by taking a number of the upper bits of the virtual address to determine an associated page of virtual memory. The lower ordered bits are utilized as an offset into the page to locate the starting physical address for the particular virtual address. Therefore, for each virtual address, the page table must be accessed to determine the starting physical address for the associated page. Thereafter, the starting physical address must be added to the offset to determine the physical address which is associated with the virtual address of interest.
Some virtual memory systems utilize a descriptor-based addressing scheme. In these systems, each command which needs to access a virtual memory address must utilize a memory descriptor to do so. The memory descriptor includes information which tells the virtual memory manager of the system how to address the location in a virtual sense. Typically, the descriptor will include a segment identifier which identifies a particular virtual memory segment.
Once the memory descriptor is utilized to obtain the necessary virtual memory addressing information, the virtual address must be translated to a physical address for each command.
For example, a system may often need to perform several input/output commands. These commands may be implemented utilizing direct memory access (DMA) commands. When a DMA command is executed, the virtual address included within the command must be translated into the appropriate physical address. This process of translating addresses must be performed for each command.
In some systems, the timing of the execution of commands is critical. For example, multimedia systems require the delivery of data within a deadline in order to maintain an accurate audio and/or video output. The process of translating virtual addresses into physical addresses for each I/O command will degrade the performance of the system.
Therefore a need exists for a method and system in a data processing system having a virtual memory address space for generating a virtual memory descriptor including pretranslated physical addresses utilized to access a main memory.